//
//  JRTableViewCell.swift
//  LEDOTA
//
//  Created by rui on 2024/4/12.
//

import UIKit

open class JRTableViewCell: UITableViewCell {
        
    public convenience init(reuseIdentifier: String?) {
        self.init(style: .default, reuseIdentifier: reuseIdentifier)
    }
    
    public required override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
        super.init(style: style, reuseIdentifier: reuseIdentifier)
        customInit()
    }
    
    public required init?(coder: NSCoder) {
        super.init(coder: coder)
        customInit()
    }
        
    open func customInit() {
        self.selectionStyle = .none
        self.contentView.backgroundColor = .white
        if #available(iOS 14.0, *) {
            let configure = UIBackgroundConfiguration.clear()
            self.backgroundConfiguration = configure
        } else {
            self.backgroundColor = .clear
        }
    }
    
    open class var identifier: String {
        get {
            let str = String(describing: self)
            return str
        }
    }
    open class func heightForCell() -> CGFloat {
        return 44.0
    }
    open func setCellData(_ data: Any? = nil) {
        
    }
    public class func register(_ tableView: UITableView, reuseIdentifier: String? = nil) {
        tableView.register(self, forCellReuseIdentifier: reuseIdentifier ?? identifier)
    }
    public class func register(_ tableView: UITableView, nib: UINib? = nil, reuseIdentifier: String? = nil) {
        tableView.register(nib, forCellReuseIdentifier: reuseIdentifier ?? identifier)
    }
}

//extension JRTableViewCell {
//    public class func loadCellFromXib(tableView: UITableView, nibName: String = identifier, identifier: String = identifier, selectStyle: UITableViewCell.SelectionStyle = .none) -> UITableViewCell {
//        var cell = tableView.dequeueReusableCell(withIdentifier: identifier)
//        if cell == nil {
//            cell = Bundle.main.loadNibNamed(nibName, owner: tableView)?.first as? UITableViewCell
//        }
//        cell?.selectionStyle = selectStyle
//        if cell == nil {
//            cell = loadCell(tableView: tableView, identifier: identifier)
//        }
//        return cell!
//    }
//    public class func loadCell(tableView: UITableView, identifier: String = identifier, selectStyle: UITableViewCell.SelectionStyle = .none) -> UITableViewCell {
//        var cell = tableView.dequeueReusableCell(withIdentifier: identifier)
//        if cell == nil {
//            cell = self.init(style: .default, reuseIdentifier: identifier)
//        }
//        cell!.selectionStyle = selectStyle
//        return cell!
//    }
//}
